﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace sgs_Entity
{
	#region 枚举
	/// <summary>
	/// 国别枚举
	/// </summary>
	public enum Kingdom
	{
        /// <summary>
        /// 空
        /// </summary>
        NA,
		/// <summary>
		/// 魏
		/// </summary>
		Wei,

		/// <summary>
		/// 蜀
		/// </summary>
		Shu,

		/// <summary>
		/// 吴
		/// </summary>
		Wu,

		/// <summary>
		/// 群
		/// </summary>
		Qun
	}

	/// <summary>
	/// 武将包
	/// </summary>
	public enum WarriorSet
	{
        /// <summary>
        /// 空
        /// </summary>
        NA,
		/// <summary>
		/// 标准
		/// </summary>
		Standard,

		/// <summary>
		/// 风
		/// </summary>
		Feng,

		/// <summary>
		/// 火
		/// </summary>
		Huo,

		/// <summary>
		/// 山
		/// </summary>
		Shan,

		/// <summary>
		/// 林
		/// </summary>
		Lin,

		/// <summary>
		/// 一将成名
		/// </summary>
		YiJiangChengMing
	}

	/// <summary>
	/// 武将名
	/// </summary>
	public enum WarriorName
	{
        NA,
		刘备,
		关羽,
		张飞,
		赵云,
		马超,
		诸葛亮,
		黄月英,
		曹操,
		司马懿,
		夏侯惇,
		张辽,
		许诸,
		郭嘉,
		甄姬,
		孙权,
		甘宁,
		吕蒙,
		黄盖,
		周瑜,
		大乔,
		陆逊,
		孙尚香,
		吕布,
		华佗,
		貂蝉,
		神关羽,
		夏侯渊,
		曹仁,
		黄忠,
		魏延,
		小乔,
		周泰,
		于吉,
		张角,
		典韦,
		荀彧,
		庞德,
		庞统,
		神周瑜,
		太史慈,
		颜良and文丑,
		袁绍,
		卧龙诸葛亮,
		董卓,
		曹丕,
		孟获,
		鲁肃,
		徐晃,
		祝融,
		贾诩,
		神吕布,
		神曹操,
		于禁,
		曹植,
		徐庶,
		法正,
		张春华,
		凌统,
		徐盛,
		吴国太,
		陈宫,
		马谡,
		高顺,
		张颌,
		蔡文姬,
		张昭and张肱,
		左慈,
		邓艾,
		孙策,
		刘禅,
		姜维,
		神司马懿,
		神赵云,
	}
	#endregion 枚举

	/// <summary>
	/// 武将类
	/// </summary>
	public class Warrior
	{
		#region 字段
		#endregion 字段

		#region 属性
		/// <summary>
		/// 武将名
		/// </summary>
		public WarriorName Name { get; private set; }

		/// <summary>
		/// 默认血量
		/// </summary>
		public int Blood { get; private set; }

		/// <summary>
		/// 是否有主公技
		/// </summary>
		public bool IsLoad { get; private set; }

		/// <summary>
		/// 是否神
		/// </summary>
		public bool IsGod { get; private set; }

		/// <summary>
		/// 国别
		/// </summary>
		public sgs_Entity.Kingdom Kingdom { get; private set; }

		/// <summary>
		/// 武将包
		/// </summary>
		public sgs_Entity.WarriorSet WarriorSet { get; private set; }

		/// <summary>
		/// 武将技能
		/// </summary>
		public sgs_Entity.SkillName[] Skills { get; private set; }
		#endregion 属性

		#region 方法
		/// <summary>
		/// 构造函数
		/// </summary>
		/// <param name="name">武将名</param>
		/// <param name="blood">默认血量</param>
		/// <param name="isLoad">是否有主公技</param>
		/// <param name="kingdom">国别</param>
		/// <param name="warriorSet">武将包</param>
		/// <param name="skills">武将技能</param>
		public Warrior(WarriorName name, int blood, Kingdom kingdom, WarriorSet warriorSet, SkillName[] skills, bool isLoad = false, bool isGod = false)
		{
			Name = name;
			Blood = blood;
			IsLoad = isLoad;
			Kingdom = kingdom;
			WarriorSet = warriorSet;
			Skills = skills;
			IsGod = isGod;
		}

		#endregion 方法
	}

	/// <summary>
	/// 武将管理类(此类应为单例模式)
	/// </summary>
	public class WarriorManager
	{
		/// <summary>
		/// 武将列表
		/// </summary>
		public List<Warrior> WarriorList { private set; get; }

		/// <summary>
		/// 风包状态
		/// </summary>
		public bool EnableFeng { private set; get; }

		/// <summary>
		/// 火包状态
		/// </summary>
		public bool EnableHuo { private set; get; }

		/// <summary>
		/// 山包状态
		/// </summary>
		public bool EnableShan { private set; get; }

		/// <summary>
		/// 林包状态
		/// </summary>
		public bool EnableLin { private set; get; }

		/// <summary>
		/// 一将成名包状态
		/// </summary>
		public bool EnableYiJiangChengMing { private set; get; }

		/// <summary>
		/// Constructor
		/// </summary>
		/// <param name="warriorSets">补丁包</param>
		public WarriorManager(params WarriorSet[] warriorSets)
		{
			Dictionary<WarriorName, Warrior> warriorDictionary = this.StandardWarriorDictionary();

			foreach (WarriorSet warriorSet in warriorSets)
			{
				switch (warriorSet)
				{
					case WarriorSet.Feng:
						if (!EnableFeng)
						{
							warriorDictionary = warriorDictionary.Concat(this.FengWarriorDictionary()).ToDictionary(x => x.Key, y => y.Value);
							EnableFeng = true;
						}
						break;
					case WarriorSet.Huo:
						if (!EnableHuo)
						{
							warriorDictionary = warriorDictionary.Concat(this.HuoWarriorDictionary()).ToDictionary(x => x.Key, y => y.Value);
							EnableHuo = true;
						}
						break;
					case WarriorSet.Shan:
						if (!EnableShan)
						{
							warriorDictionary = warriorDictionary.Concat(this.ShanWarriorDictionary()).ToDictionary(x => x.Key, y => y.Value);
							EnableShan = true;
						}
						break;
					case WarriorSet.Lin:
						if (!EnableLin)
						{
							warriorDictionary = warriorDictionary.Concat(this.LinWarriorDictionary()).ToDictionary(x => x.Key, y => y.Value);
							EnableLin = true;
						}
						break;
					case WarriorSet.YiJiangChengMing:
						if (!EnableYiJiangChengMing)
						{
							warriorDictionary = warriorDictionary.Concat(this.YiJiangChengMingWarriorDictionary()).ToDictionary(x => x.Key, y => y.Value);
							EnableYiJiangChengMing = true;
						}
						break;
					default:
						throw new ArgumentException();
				}
			}
			WarriorList = warriorDictionary.Values.ToList();
		}

		/// <summary>
		/// 标准版武将
		/// </summary>
		/// <returns>标准版武将词典</returns>
		private Dictionary<WarriorName, Warrior> StandardWarriorDictionary()
		{
			Dictionary<WarriorName, Warrior> warriorDictionary = new Dictionary<WarriorName, Warrior>();
			warriorDictionary.Add(WarriorName.刘备, new Warrior(WarriorName.刘备, 4, Kingdom.Shu, WarriorSet.Standard, new SkillName[] { SkillName.仁德, SkillName.激将 }, isLoad: true));
			warriorDictionary.Add(WarriorName.关羽, new Warrior(WarriorName.关羽, 4, Kingdom.Shu, WarriorSet.Standard, new SkillName[] { SkillName.武圣 }));
			warriorDictionary.Add(WarriorName.张飞, new Warrior(WarriorName.张飞, 4, Kingdom.Shu, WarriorSet.Standard, new SkillName[] { SkillName.咆哮 }));
			warriorDictionary.Add(WarriorName.赵云, new Warrior(WarriorName.赵云, 4, Kingdom.Shu, WarriorSet.Standard, new SkillName[] { SkillName.龙胆 }));
			warriorDictionary.Add(WarriorName.马超, new Warrior(WarriorName.马超, 4, Kingdom.Shu, WarriorSet.Standard, new SkillName[] { SkillName.马术, SkillName.铁骑 }));
			warriorDictionary.Add(WarriorName.诸葛亮, new Warrior(WarriorName.诸葛亮, 3, Kingdom.Shu, WarriorSet.Standard, new SkillName[] { SkillName.观星, SkillName.空城 }));
			warriorDictionary.Add(WarriorName.黄月英, new Warrior(WarriorName.黄月英, 3, Kingdom.Shu, WarriorSet.Standard, new SkillName[] { SkillName.集智, SkillName.奇才 }));
			warriorDictionary.Add(WarriorName.曹操, new Warrior(WarriorName.曹操, 4, Kingdom.Wei, WarriorSet.Standard, new SkillName[] { SkillName.奸雄, SkillName.护驾 }, isLoad: true));
			warriorDictionary.Add(WarriorName.司马懿, new Warrior(WarriorName.司马懿, 3, Kingdom.Wei, WarriorSet.Standard, new SkillName[] { SkillName.反馈, SkillName.鬼才 }));
			warriorDictionary.Add(WarriorName.夏侯惇, new Warrior(WarriorName.夏侯惇, 4, Kingdom.Wei, WarriorSet.Standard, new SkillName[] { SkillName.刚烈 }));
			warriorDictionary.Add(WarriorName.张辽, new Warrior(WarriorName.张辽, 4, Kingdom.Wei, WarriorSet.Standard, new SkillName[] { SkillName.突袭 }));
			warriorDictionary.Add(WarriorName.许诸, new Warrior(WarriorName.许诸, 4, Kingdom.Wei, WarriorSet.Standard, new SkillName[] { SkillName.裸衣 }));
			warriorDictionary.Add(WarriorName.郭嘉, new Warrior(WarriorName.郭嘉, 3, Kingdom.Wei, WarriorSet.Standard, new SkillName[] { SkillName.天妒, SkillName.遗计 }));
			warriorDictionary.Add(WarriorName.甄姬, new Warrior(WarriorName.甄姬, 3, Kingdom.Wei, WarriorSet.Standard, new SkillName[] { SkillName.倾国, SkillName.洛神 }));
			warriorDictionary.Add(WarriorName.孙权, new Warrior(WarriorName.孙权, 4, Kingdom.Wu, WarriorSet.Standard, new SkillName[] { SkillName.制衡, SkillName.救援 }, isLoad: true));
			warriorDictionary.Add(WarriorName.甘宁, new Warrior(WarriorName.甘宁, 4, Kingdom.Wu, WarriorSet.Standard, new SkillName[] { SkillName.奇袭 }));
			warriorDictionary.Add(WarriorName.吕蒙, new Warrior(WarriorName.吕蒙, 4, Kingdom.Wu, WarriorSet.Standard, new SkillName[] { SkillName.克己 }));
			warriorDictionary.Add(WarriorName.黄盖, new Warrior(WarriorName.黄盖, 4, Kingdom.Wu, WarriorSet.Standard, new SkillName[] { SkillName.苦肉 }));
			warriorDictionary.Add(WarriorName.周瑜, new Warrior(WarriorName.周瑜, 3, Kingdom.Wu, WarriorSet.Standard, new SkillName[] { SkillName.英姿, SkillName.反间 }));
			warriorDictionary.Add(WarriorName.大乔, new Warrior(WarriorName.大乔, 3, Kingdom.Wu, WarriorSet.Standard, new SkillName[] { SkillName.国色, SkillName.流离 }));
			warriorDictionary.Add(WarriorName.陆逊, new Warrior(WarriorName.陆逊, 3, Kingdom.Wu, WarriorSet.Standard, new SkillName[] { SkillName.谦逊, SkillName.连营 }));
			warriorDictionary.Add(WarriorName.孙尚香, new Warrior(WarriorName.孙尚香, 3, Kingdom.Wu, WarriorSet.Standard, new SkillName[] { SkillName.结姻, SkillName.枭姬 }));
			warriorDictionary.Add(WarriorName.吕布, new Warrior(WarriorName.吕布, 4, Kingdom.Qun, WarriorSet.Standard, new SkillName[] { SkillName.无双 }));
			warriorDictionary.Add(WarriorName.华佗, new Warrior(WarriorName.华佗, 3, Kingdom.Qun, WarriorSet.Standard, new SkillName[] { SkillName.急救, SkillName.青囊 }));
			warriorDictionary.Add(WarriorName.貂蝉, new Warrior(WarriorName.貂蝉, 3, Kingdom.Qun, WarriorSet.Standard, new SkillName[] { SkillName.离间, SkillName.闭月 }));
			return warriorDictionary;
		}

		/// <summary>
		/// 风包武将
		/// </summary>
		/// <returns>风包武将词典</returns>
		private Dictionary<WarriorName, Warrior> FengWarriorDictionary()
		{
			Dictionary<WarriorName, Warrior> warriorDictionary = new Dictionary<WarriorName, Warrior>();
			warriorDictionary.Add(WarriorName.神关羽, new Warrior(WarriorName.神关羽, 5, Kingdom.Shu, WarriorSet.Feng, new SkillName[] { SkillName.武神, SkillName.武魂 }, isGod: true));
			warriorDictionary.Add(WarriorName.夏侯渊, new Warrior(WarriorName.夏侯渊, 4, Kingdom.Wei, WarriorSet.Feng, new SkillName[] { SkillName.神速 }));
			warriorDictionary.Add(WarriorName.曹仁, new Warrior(WarriorName.曹仁, 4, Kingdom.Wei, WarriorSet.Feng, new SkillName[] { SkillName.据守 }));
			warriorDictionary.Add(WarriorName.黄忠, new Warrior(WarriorName.黄忠, 4, Kingdom.Shu, WarriorSet.Feng, new SkillName[] { SkillName.烈弓 }));
			warriorDictionary.Add(WarriorName.魏延, new Warrior(WarriorName.魏延, 4, Kingdom.Shu, WarriorSet.Feng, new SkillName[] { SkillName.狂骨 }));
			warriorDictionary.Add(WarriorName.小乔, new Warrior(WarriorName.小乔, 3, Kingdom.Wu, WarriorSet.Feng, new SkillName[] { SkillName.天香, SkillName.红颜 }));
			warriorDictionary.Add(WarriorName.周泰, new Warrior(WarriorName.周泰, 4, Kingdom.Wu, WarriorSet.Feng, new SkillName[] { SkillName.不屈 }));
			warriorDictionary.Add(WarriorName.于吉, new Warrior(WarriorName.于吉, 3, Kingdom.Qun, WarriorSet.Feng, new SkillName[] { SkillName.蛊惑 }));
			warriorDictionary.Add(WarriorName.张角, new Warrior(WarriorName.张角, 3, Kingdom.Qun, WarriorSet.Feng, new SkillName[] { SkillName.雷击, SkillName.鬼道, SkillName.黄天 }, isLoad: true));
			return warriorDictionary;
		}

		/// <summary>
		/// 火包武将
		/// </summary>
		/// <returns>火包武将词典</returns>
		private Dictionary<WarriorName, Warrior> HuoWarriorDictionary()
		{
			Dictionary<WarriorName, Warrior> warriorDictionary = new Dictionary<WarriorName, Warrior>();
			warriorDictionary.Add(WarriorName.典韦, new Warrior(WarriorName.典韦, 4, Kingdom.Wei, WarriorSet.Huo, new SkillName[] { SkillName.强袭 }));
			warriorDictionary.Add(WarriorName.荀彧, new Warrior(WarriorName.荀彧, 3, Kingdom.Wei, WarriorSet.Huo, new SkillName[] { SkillName.驱虎, SkillName.节命 }));
			warriorDictionary.Add(WarriorName.庞德, new Warrior(WarriorName.庞德, 4, Kingdom.Shu, WarriorSet.Huo, new SkillName[] { SkillName.马术, SkillName.猛进 }));
			warriorDictionary.Add(WarriorName.庞统, new Warrior(WarriorName.庞统, 3, Kingdom.Shu, WarriorSet.Huo, new SkillName[] { SkillName.连环, SkillName.涅槃 }));
			warriorDictionary.Add(WarriorName.神周瑜, new Warrior(WarriorName.神周瑜, 4, Kingdom.Wu, WarriorSet.Huo, new SkillName[] { SkillName.琴音, SkillName.业炎 }, isGod: true));
			warriorDictionary.Add(WarriorName.太史慈, new Warrior(WarriorName.太史慈, 4, Kingdom.Wu, WarriorSet.Huo, new SkillName[] { SkillName.天义 }));
			warriorDictionary.Add(WarriorName.颜良and文丑, new Warrior(WarriorName.颜良and文丑, 4, Kingdom.Qun, WarriorSet.Huo, new SkillName[] { SkillName.双雄 }));
			warriorDictionary.Add(WarriorName.袁绍, new Warrior(WarriorName.袁绍, 4, Kingdom.Qun, WarriorSet.Huo, new SkillName[] { SkillName.乱击, SkillName.血裔 }, isLoad: true));
			warriorDictionary.Add(WarriorName.卧龙诸葛亮, new Warrior(WarriorName.卧龙诸葛亮, 3, Kingdom.Shu, WarriorSet.Huo, new SkillName[] { SkillName.八阵, SkillName.火攻, SkillName.看破 }));
			return warriorDictionary;
		}

		/// <summary>
		/// 山包武将
		/// </summary>
		/// <returns>山包武将词典</returns>
		private Dictionary<WarriorName, Warrior> ShanWarriorDictionary()
		{
			Dictionary<WarriorName, Warrior> warriorDictionary = new Dictionary<WarriorName, Warrior>();
			warriorDictionary.Add(WarriorName.张颌, new Warrior(WarriorName.张颌, 4, Kingdom.Wei, WarriorSet.Shan, new SkillName[] { SkillName.巧变 }));
			warriorDictionary.Add(WarriorName.蔡文姬, new Warrior(WarriorName.蔡文姬, 3, Kingdom.Qun, WarriorSet.Shan, new SkillName[] { SkillName.悲歌, SkillName.断肠 }));
			warriorDictionary.Add(WarriorName.张昭and张肱, new Warrior(WarriorName.张昭and张肱, 3, Kingdom.Wu, WarriorSet.Shan, new SkillName[] { SkillName.直谏, SkillName.固政 }));
			warriorDictionary.Add(WarriorName.左慈, new Warrior(WarriorName.左慈, 3, Kingdom.Qun, WarriorSet.Shan, new SkillName[] { SkillName.化身, SkillName.新生 }));
			warriorDictionary.Add(WarriorName.邓艾, new Warrior(WarriorName.邓艾, 4, Kingdom.Wei, WarriorSet.Shan, new SkillName[] { SkillName.屯田, SkillName.凿险 }));
			warriorDictionary.Add(WarriorName.孙策, new Warrior(WarriorName.孙策, 4, Kingdom.Wu, WarriorSet.Shan, new SkillName[] { SkillName.激昂, SkillName.魂姿, SkillName.制霸 }, isLoad: true));
			warriorDictionary.Add(WarriorName.刘禅, new Warrior(WarriorName.刘禅, 3, Kingdom.Shu, WarriorSet.Shan, new SkillName[] { SkillName.享乐, SkillName.放权, SkillName.若愚 }, isLoad: true));
			warriorDictionary.Add(WarriorName.姜维, new Warrior(WarriorName.姜维, 4, Kingdom.Shu, WarriorSet.Shan, new SkillName[] { SkillName.挑衅, SkillName.志继 }));
			warriorDictionary.Add(WarriorName.神司马懿, new Warrior(WarriorName.神司马懿, 4, Kingdom.Wei, WarriorSet.Shan, new SkillName[] { SkillName.恩戒, SkillName.拜印, SkillName.连破 }, isGod: true));
			warriorDictionary.Add(WarriorName.神赵云, new Warrior(WarriorName.神赵云, 2, Kingdom.Shu, WarriorSet.Shan, new SkillName[] { SkillName.绝境, SkillName.龙魂 }, isGod: true));
			return warriorDictionary;
		}

		/// <summary>
		/// 林包武将
		/// </summary>
		/// <returns>林包武将词典</returns>
		private Dictionary<WarriorName, Warrior> LinWarriorDictionary()
		{
			Dictionary<WarriorName, Warrior> warriorDictionary = new Dictionary<WarriorName, Warrior>();
			warriorDictionary.Add(WarriorName.董卓, new Warrior(WarriorName.董卓, 8, Kingdom.Qun, WarriorSet.Lin, new SkillName[] { SkillName.酒池, SkillName.肉林, SkillName.崩坏, SkillName.暴虐 }, isLoad: true));
			warriorDictionary.Add(WarriorName.曹丕, new Warrior(WarriorName.曹丕, 3, Kingdom.Wei, WarriorSet.Lin, new SkillName[] { SkillName.行殇, SkillName.放逐, SkillName.颂威 }, isLoad: true));
			warriorDictionary.Add(WarriorName.孟获, new Warrior(WarriorName.孟获, 4, Kingdom.Shu, WarriorSet.Lin, new SkillName[] { SkillName.祸首, SkillName.再起 }));
			warriorDictionary.Add(WarriorName.鲁肃, new Warrior(WarriorName.鲁肃, 3, Kingdom.Wu, WarriorSet.Lin, new SkillName[] { SkillName.好施, SkillName.缔盟 }));
			warriorDictionary.Add(WarriorName.徐晃, new Warrior(WarriorName.徐晃, 4, Kingdom.Wei, WarriorSet.Lin, new SkillName[] { SkillName.断粮 }));
			warriorDictionary.Add(WarriorName.祝融, new Warrior(WarriorName.祝融, 4, Kingdom.Shu, WarriorSet.Lin, new SkillName[] { SkillName.巨象, SkillName.烈刃 }));
			warriorDictionary.Add(WarriorName.贾诩, new Warrior(WarriorName.贾诩, 3, Kingdom.Qun, WarriorSet.Lin, new SkillName[] { SkillName.完杀, SkillName.乱武, SkillName.帷幕 }));
			warriorDictionary.Add(WarriorName.神吕布, new Warrior(WarriorName.神吕布, 5, Kingdom.Qun, WarriorSet.Lin, new SkillName[] { SkillName.暴怒, SkillName.无谋, SkillName.无前, SkillName.神愤 }, isGod: true));
			warriorDictionary.Add(WarriorName.神曹操, new Warrior(WarriorName.神曹操, 3, Kingdom.Wei, WarriorSet.Lin, new SkillName[] { SkillName.飞影, SkillName.归心 }, isGod: true));
			return warriorDictionary;
		}

		/// <summary>
		/// 一将成名武将
		/// </summary>
		/// <returns>一将成名武将词典</returns>
		private Dictionary<WarriorName, Warrior> YiJiangChengMingWarriorDictionary()
		{
			Dictionary<WarriorName, Warrior> warriorDictionary = new Dictionary<WarriorName, Warrior>();
			warriorDictionary.Add(WarriorName.于禁, new Warrior(WarriorName.于禁, 4, Kingdom.Wei, WarriorSet.YiJiangChengMing, new SkillName[] { SkillName.毅重 }));
			warriorDictionary.Add(WarriorName.曹植, new Warrior(WarriorName.曹植, 3, Kingdom.Wei, WarriorSet.YiJiangChengMing, new SkillName[] { SkillName.落英, SkillName.酒诗 }));
			warriorDictionary.Add(WarriorName.徐庶, new Warrior(WarriorName.徐庶, 3, Kingdom.Shu, WarriorSet.YiJiangChengMing, new SkillName[] { SkillName.无言, SkillName.举荐 }));
			warriorDictionary.Add(WarriorName.法正, new Warrior(WarriorName.法正, 3, Kingdom.Shu, WarriorSet.YiJiangChengMing, new SkillName[] { SkillName.恩怨, SkillName.眩惑 }));
			warriorDictionary.Add(WarriorName.张春华, new Warrior(WarriorName.张春华, 3, Kingdom.Wei, WarriorSet.YiJiangChengMing, new SkillName[] { SkillName.绝情, SkillName.伤逝 }));
			warriorDictionary.Add(WarriorName.凌统, new Warrior(WarriorName.凌统, 4, Kingdom.Wu, WarriorSet.YiJiangChengMing, new SkillName[] { SkillName.旋风 }));
			warriorDictionary.Add(WarriorName.徐盛, new Warrior(WarriorName.徐盛, 4, Kingdom.Wu, WarriorSet.YiJiangChengMing, new SkillName[] { SkillName.破军 }));
			warriorDictionary.Add(WarriorName.吴国太, new Warrior(WarriorName.吴国太, 3, Kingdom.Wu, WarriorSet.YiJiangChengMing, new SkillName[] { SkillName.甘露, SkillName.补益 }));
			warriorDictionary.Add(WarriorName.陈宫, new Warrior(WarriorName.陈宫, 3, Kingdom.Qun, WarriorSet.YiJiangChengMing, new SkillName[] { SkillName.明策, SkillName.智迟 }));
			warriorDictionary.Add(WarriorName.马谡, new Warrior(WarriorName.马谡, 3, Kingdom.Shu, WarriorSet.YiJiangChengMing, new SkillName[] { SkillName.心战, SkillName.挥泪 }));
			warriorDictionary.Add(WarriorName.高顺, new Warrior(WarriorName.高顺, 4, Kingdom.Qun, WarriorSet.YiJiangChengMing, new SkillName[] { SkillName.陷阵, SkillName.禁酒 }));
			return warriorDictionary;
		}

		/// <summary>
		/// 获取随机武将列
		/// </summary>
		/// <param name="warriorList">武将列表</param>
		/// <returns>武将列表</returns>
		private List<Warrior> GetRandomWarriorList(List<Warrior> warriorList)
		{
			return this.GetRandomWarriorList(warriorList, warriorList.Count);
		}

		/// <summary>
		/// 获取随机武将列
		/// </summary>
		/// <param name="warriorList">武将列表</param>
		/// <param name="count">武将个数</param>
		/// <returns>武将列表</returns>
		private List<Warrior> GetRandomWarriorList(List<Warrior> warriorList, int count)
		{
			List<Warrior> result = new List<Warrior>();
			Random random = new Random();
			int tempValue = default(int);

			while (warriorList.Count > 0 && count > 0)
			{
				tempValue = random.Next(warriorList.Count);
				result.Add(warriorList[tempValue]);
				warriorList.Remove(warriorList[tempValue]);
				count--;
			}

			return result;
		}
	}
}
